/**
 * 副将相关接口定义
 */

// 副将基础信息接口
export interface DeputyGeneralBaseInfo {
  id: number;
  name: string;
  head_img?: string; // 头像图片
  description?: string;
  star_level: number;
  ap_min: number;
  ap_max: number;
  czl_min: number;
  czl_max: number;
  hp_min: number;
  hp_max: number;
  mp_min: number;
  mp_max: number;
  sp_min: number;
  sp_max: number;
  sex: number;
  created_at: Date;
  updated_at: Date;
}

// 副将列表项接口
export interface DeputyGeneralListItem {
  id: number;
  lvl: number;
  name: string;
  pos: number;
  roleType: number;
  s: number;
  star: number;
  sex: number;
  head_img?: string;
}

// 副将列表响应接口
export interface DeputyGeneralListResponse {
  list: DeputyGeneralListItem[];
  count: number;
}

// 副将详细信息接口 - 对齐标准数据格式
export interface DeputyGeneralDetailInfo {
  // 基础信息
  id: number;
  name: string; // 副将名称
  img: string; // 头像图片
  roleType: number; // 职业类型
  star: number; // 星级
  lvl: number; // 等级
  exp: number; // 经验值

  // 属性信息
  ap: number; // 攻击力
  hp: number; // 血量
  mp: number; // 精力
  sp: number; // 速度
  czl: number; // 成长率

  // 加点信息
  app: number; // 攻击加点
  hpp: number; // 血量加点
  mpp: number; // 精力加点
  spp: number; // 速度加点

  // 防御和状态
  df: number; // 防御力
  status: number; // 状态
  lock: boolean; // 是否锁定
  sack: boolean; // 是否在背包

  // 位置和部署
  pos: number; // 上阵位置
  p: number; // 位置标识

  // 培养相关
  trans: number; // 转职次数 (对应trans_count)
  mqd: number; // 默契度 (对应compatibility)
  zcd: number; // 忠诚度 (对应loyalty)
  up: number; // 升级状态

  // 技能和装备
  skillList: any[]; // 技能列表
  armingList: any[]; // 装备列表
  stoneList: any[]; // 宝石列表

  // 最大属性
  maxHp: number; // 最大血量
  maxMp: number; // 最大精力
  maxArming: number; // 最大装备数
  maxStone: number; // 最大宝石数

  // 特殊技能
  godSkill: boolean; // 是否有神技

  // 称号
  title: string; // 称号

  // 内部字段（保留用于后端处理）
  base_id: number;
  sp_points: number;
  ap_points: number;
  hp_points: number;
  mp_points: number;
  loyalty: number;
  compatibility: number;
  is_real: boolean;
  trans_count: number;
  ultimate_skill_1_id?: number;
  ultimate_skill_1_level: number;
  ultimate_skill_2_id?: number;
  ultimate_skill_2_level: number;
  created_at: Date;
  updated_at: Date;
  base?: DeputyGeneralBaseInfo;
  is_deployed: boolean;
}

// 创建副将请求接口
export interface CreateDeputyGeneralRequest {
  base_id: number;
  player_id: number;
}

// 副将生成响应接口（匹配实际返回结构）
export interface GenerateDeputyGeneralResponse {
  deputy_id: number;
  base_id: number;
  player_id: number;
  name: string;
  level: number;
  star: number;
  ap: number;
  hp: number;
  mp: number;
  sp: number;
  czl: number;
  role_type: number;
  is_in_warehouse: boolean;
  generated_attributes: {
    ap: number;
    hp: number;
    mp: number;
    sp: number;
    czl: number;
  };
}
